home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / 4dos / 4dos_btm.zip / RD_FIL.BTM < prev   
Text File  |  1992-02-27  |  2KB  |  89 lines

  1. : *** RD_FIL.btm *** ReaD FILe * rhc december 91 * (v 2.0)
  2.  
  3.  
  4. if  %1! == !  goto ERROR ~ if  %1 == ?  goto SYNTAX
  5. if  %2! == ! .or. %3! == ! goto ERROR
  6.  
  7. iff  %@index[0123456789,%@substr[%2, 0, 1]] ne -1  then
  8.   goto CONT
  9. else
  10.   goto ERROR
  11. endiff
  12.  
  13.  
  14. :SYNTAX  
  15.  
  16. gosub *_row ~ screen %row% 0
  17. text
  18.      syntax:  RD_FIL  t_fil f_ln t_str
  19.  
  20.                      (t_fil: Target FiLe
  21.                       f_ln : First LiNe [- 1] to be read
  22.                       t_str: Target STRing)
  23. endtext
  24. goto END
  25.  
  26.  
  27. :CONT
  28.  
  29. set f_nam=%1
  30. set ln_no=%2
  31.  
  32. iff  %ln_no% gt %@lines[%f_nam%]  then
  33.   gosub *_row ~ screen %row% 1
  34.   echo Your %@upper[%f_nam%] has the wrong format, mate !!
  35.   set err_flg=1 ~ goto OUT
  36. endiff
  37.   
  38.  
  39. :*_read
  40. set f_line=%@line[%f_nam%, %ln_no%]
  41.  
  42. iff  "%f_line%" == "%3"  then
  43.   set f_line=%@substr[%@line[%f_nam%, %@eval[%ln_no% + 1]], 0, 32]
  44.   set  e_stt=%@eval[%@index[%f_line%,.] + 1]
  45.  
  46.   set    ext=%@substr[%f_line%, %e_stt%, 3]
  47.  
  48.   iff  %@index[%ext%, ] ne -1  then
  49.     set pos_bl=%@index[%ext%, ]
  50.     set    ext=%@substr[%ext%, 0, %@eval[2 - %pos_bl%]]
  51.   endiff
  52.   goto OUT
  53. else
  54.   set ln_no=%@eval[%ln_no% + 1] ~ goto *_read
  55. endiff
  56.  
  57.  
  58. :ERROR
  59.  
  60. gosub *_row ~ screen %row% 1
  61. echo Try again, mate!  This programme has the syntax described below.
  62. goto SYNTAX
  63.  
  64.  
  65. :*_row
  66. set row=%@eval[%_row + 1]
  67.  
  68. iff  %row% ge %_rows  then
  69.   cls
  70.   set row=2
  71.   goto *_row
  72. endiff
  73. return
  74.  
  75.  
  76. :OUT
  77.  
  78. set  e_len=
  79. set  e_stt=
  80. set f_line=
  81. set  f_nam=
  82. set  ln_no=
  83. set pos_bl=
  84.  
  85.  
  86. :END
  87.  
  88. set row=
  89.